package com.lele.controller;

import com.lele.pojo.Tang;
import com.lele.service.UserService;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.sql.SQLException;
import java.util.List;

public class UserController {

    private UserService userService = null;

    // 首页
    private String go (String likeName, String pageNo, HttpServletRequest req) throws SQLException {
        HttpSession session = req.getSession();

        // 分页的内容
        int maxlines = 5; // 每页多少行
        if (pageNo == null || pageNo == "") {
            pageNo = "1"; // 默认初始页
        }
        int sum = (userService.selectSum() + maxlines - 1) / 5 ; // 数据库分页总页数
        session.setAttribute("pageNo", Integer.parseInt(pageNo));
        session.setAttribute("sum", sum);

        // 1.连接数据库，获取数据库中的数据，返回一个集合
        List<Tang> list = null;
        if(likeName == null || likeName == ""){ // 第一次进首页，或者空查询
            // list = baseDao.selectAll(); // 查询全部
            list = userService.selectPaging(Integer.parseInt(pageNo),maxlines); // 分页查询（页数，条数）
        } else {
            list = userService.selectLike(likeName); // 模糊查询（模糊查询分页还未实现，和分页查询同理，这里就先不写了）
        }
        // 2、以键值对的方式将list放入session中
        session.setAttribute("selectAll",list);
        // 3、转发
        return "index"; // 返回字符串给 DispatcherServlet类 让它来帮我们做资源转发
    }

    // 删除
    private String delete(String id) throws SQLException {
        userService.delete(Integer.parseInt(id));
        return "redirect:module.one"; // 返回字符串给 DispatcherServlet类 让它来帮我们做重定向
    }

    // 查询单个
    private String selectOne(String id, HttpServletRequest req) throws SQLException {
        Tang tang = userService.selectOne(Integer.parseInt(id));
        req.setAttribute("tang",tang);
        return "edit";
    }

    // 跳转到新增页面
    private String addPage(){
        return "insert"; // 返回字符串给 DispatcherServlet类 让它来帮我们做资源转发
    }

    // 新增
    private String add(String name, String sex, String age) throws SQLException {
        userService.add(new Tang(0,name,sex,Integer.parseInt(age)));
        return "redirect:module.one"; // 返回字符串给 DispatcherServlet类 让它来帮我们做重定向
    }

    // 修改
    private String update(String id, String name, String sex, String age) throws SQLException {
        userService.update(new Tang(Integer.parseInt(id), name, sex, Integer.parseInt(age)));
        return "redirect:module.one"; // 返回字符串给 DispatcherServlet类 让它来帮我们做重定向
    }

}
